/*
 * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package com.sun.corba.se.impl.naming.namingutil;

/** The corbaloc: URL definitions from the -ORBInitDef and -ORBDefaultInitDef's
 *  will be stored in this object. This object is capable of storing multiple
 *  Host profiles as defined in the CorbaLoc grammer.
 *
 *  @author  Hemanth
 */
public abstract class INSURLBase implements INSURL {

    // If rirFlag is set to true that means internal
    // boot strapping technique will be used. If set to
    // false then the EndpointInfo will be used to create the
    // Service Object reference.
    protected boolean rirFlag = false;
    protected java.util.ArrayList theEndpointInfo = null;
    protected String theKeyString = "NameService";
    protected String theStringifiedName = null;

    public boolean getRIRFlag() {
        return rirFlag;
    }

    public java.util.List getEndpointInfo() {
        return theEndpointInfo;
    }

    public String getKeyString() {
        return theKeyString;
    }

    public String getStringifiedName() {
        return theStringifiedName;
    }

    public abstract boolean isCorbanameURL();

    public void dPrint() {
        System.out.println("URL Dump...");
        System.out.println("Key String = " + getKeyString());
        System.out.println("RIR Flag = " + getRIRFlag());
        System.out.println("isCorbanameURL = " + isCorbanameURL());
        for (int i = 0; i < theEndpointInfo.size(); i++) {
            ((IIOPEndpointInfo) theEndpointInfo.get(i)).dump();
        }
        if (isCorbanameURL()) {
            System.out.println("Stringified Name = " + getStringifiedName());
        }
    }

}
